home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 13642 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  5.1 KB

  1. Path: dildog.lgc.com!not-for-mail
  2. From: mrovak@lgc.com (Mike.Rovak)
  3. Newsgroups: comp.lang.c++
  4. Subject: Re: C++ vs Delphi 2.0
  5. Followup-To: comp.lang.c++
  6. Date: 26 Mar 1996 12:44:14 -0600
  7. Organization: tulsa.lgc.com
  8. Sender: Mike Rovak
  9. Message-ID: <4j9dtu$sh8@tulsa.lgc.com>
  10. References: <825673272.2083@axiombc.demon.co.uk> <4ims71$oh3@hawk.pix.za> <3152304b.5915048@news.newcastle.edu.au> <4j2u9o$s0n@nntp.interaccess.com>
  11. NNTP-Posting-Host: aris.tulsa.lgc.com
  12. Summary: ymmv
  13. Keywords: language comparison
  14.  
  15. In article <4j2u9o$s0n@nntp.interaccess.com>,
  16. Thaddeus L. Olczyk <Polczyk@interaccess.com> wrote:
  17. >mazz@faceng.newcastle.edu.au (Richard Mazzaferri) wrote:
  18. >
  19. >>> The problem with Delphi is that most people don't seem to realise that
  20. >>> true programming power\flexibility and ease of use are generally
  21. >>> mutually exclusive. Delphi is in Pascal ... which is fundamentally a
  22. >>> teaching language and was never meant as anything more. C++ .exe's
  23. >>> tend to be smaller and faster than Delphi .exe's. Although C++ has no
  24. >>> real standard, it's getting there and it is younger than Pascal.
  25. >>> Pascal tries to be English-like and this it has become pretty rigid.
  26. >>> (This is a personal opinion) to fit smoothly ith OOP. Additionally, if
  27. >>> you use Delphi, you'll find that the general feel of it discourages
  28. >>> one from using code, and directly controlling things. This can't be
  29. >>> good! 
  30. >>
  31. >I have argued in the past and continue to argue now that it is a misnomer
  32. >to call Delphi OO. It partial emulates the C++/Eiffel model of static 
  33. >typing, but misses severely by what it keeps out. It partially emulates
  34. >the Smalltalk model of dynamic typing, but in a convoluted way.
  35.  
  36. Having used both Delphi and C++, I might could shed some light on the
  37. subject.
  38.  
  39. I find both Delphi and C++ flexible and easy to use when a project is
  40. properly engineered to optimize the use of the preferred tool. If you want
  41. a simple database application with little frill, there is no question
  42. that Delphi will allow you to produce the finished app in a matter of
  43. days. Even in your spare time. IMHO, if you make a living doing this
  44. kind of work, then any theoretical or mathematical argument about 
  45. OO this or OO that, and Smalltalk this or Eiffel that is basically
  46. a non-issue.
  47.  
  48. My personal opinion is that the small differences in syntax between C++
  49. and Pascal alluded to above are insignificant ( { instead of begin, and
  50. so forth).
  51.  
  52. I find that the extended syntax of Delphi, where all class instances
  53. and handled as references implicitly, is a productivity boost and a
  54. great simplification, which helps to prevent pointer access bugs.
  55.  
  56. >>The biggest omissions are multiple inheritance (which can generally be
  57. >>faked with a bit of work) and templates (no workaround :-(.  Some of the
  58. >
  59. >Many times a lot of work or virtually impossible. 
  60.  
  61. Nothing is impossible if a genuine need exists (Mike's Law).  :-)
  62. That's where creativity and engineering skills come in.
  63.  
  64. >>and the first couple of days with Delphi felt quite strange, because I
  65. >>didn't have the broad knowledge of the entire system that I had with
  66. >>various C++ compilers.  After that, it was *very* pleasant and *very*
  67. >>productive.  The EXEs tend to suffer from the first couple of hundred of kB
  68. >>of run time library (which is not a big worry in most cases these days),
  69. >>but they are not particularly slow in my experience.
  70. >>
  71. >>Each to his own :-)
  72. >>
  73. >>Have fun,
  74. >>    Mazz.
  75. >>mazz@faceng.newcastle.edu.au
  76.  
  77. Once you get past the 100k for the front end, the code for actual forms
  78. takes up very little space, perhaps a few k per form. The database code
  79. also adds a few hundred k as well. The more high-level your front end,
  80. the more you can expect a few hundred k for the overhead to support it.
  81.  
  82. The major engineering problems with Delphi are, IMHO, as follows, and
  83. in my mind keep Delphi from being used much more widely in commercial
  84. applications:
  85.  
  86. 1- As is, Delphi does not support modeless forms from Delphi DLL's.
  87.    I don't know if this is fixed in 2.0, or if someone has come up 
  88.    with a workaround. Surprise!
  89.  
  90.    Not a problem with MFC.
  91.  
  92. 2- The Borland Database Engine is not engineered to be used by multiple
  93.    tasks simultaneously from a DLL. This is discussed in Pacheco & 
  94.    Texeira's book. Don't know if someone has come up with a legitimate
  95.    workaround (as opposed to the single-user-at-a-time hack mentioned 
  96.    in the book). Surprise!
  97.  
  98.    Not a problem with MFC. ODBC uses whatever pointer to an ODBC
  99.    environment you supply.
  100.  
  101. 3- VCL not engineered to be used from a DLL and linked with dynamically.
  102.    IMHO for a large, complex commercial project where frequent upgrades
  103.    occur, this is a MUST.
  104.  
  105.    Not a problem with MFC.
  106.  
  107.  
  108. If you don't care about the above issues, and need to get your product
  109. out the door, then Delphi will beat everything else out there, hands
  110. down.
  111.  
  112.  
  113. -- Mike
  114.  
  115. ------------------------------------------------------------------------
  116. Disclaimer: My opinions do not necessarily reflect those of my employer.
  117. ========================================================================
  118. ------------------------------------------------------------------------
  119.      mrovak@tulsa.lgc.com     
  120.  
  121. ========================================================================
  122.